<?php

/* * *********************************************************** */
/* * ********************** Classe vendaDao ********************* */
/* * ************ Desenvolvido por Antônio Ezequiel ************** */
/* * *********************************************************** */

class VendaDao extends Venda {

    public function adicionarVenda() {

        global $configurator;

        parent::conectarBD();

        $queri = parent::query("insert into tbl_venda (ven_data, ven_cli_codigo, ven_usu_codigo) values
                                (now(),'$this->ven_cliente','$this->ven_usuario')");

        if ($queri) {
            $id = parent::get_insert_id();
            parent::desconectarBD();
            return $id;
        } else {
            parent::desconectarBD();
            return false;
        }
    }

    
    public function deletarVenda($codigo) {

        global $configurator;

        parent::conectarBD();

        $queri = parent::query("delete from tbl_venda where ven_codigo = '$codigo'");

        if ($queri) {
            parent::desconectarBD();
            return true;
        } else {
            parent::desconectarBD();
            return false;
        }
    }

    public function listarVenda($codigo) {

        global $configurator;

        parent::conectarBD();

        $queri = parent::query("select ven_codigo as codigo, ven_data as data, cli_cpf as cpf, cli_nome as nome, cli_codigo as cliente, cli_nome,
                                usu_nome as usuario, (select sum(iv.itv_quant*pr.pro_preco) from tbl_item_venda iv inner join tbl_produto pr
                                on pr.pro_codigo = iv.itv_pro_codigo where itv_ven_codigo = $codigo) as valor
                                from tbl_venda vd inner join tbl_usuario us inner join tbl_cliente cl
                                on vd.ven_cli_codigo = cl.cli_codigo and vd.ven_usu_codigo = us.usu_codigo where ven_codigo=$codigo");
        if ($queri) {
            $dados = $queri->fetch_assoc();
            parent::desconectarBD();
            return $dados;
        } else {
            parent::desconectarBD();
            return false;
        }
    }

    public function listarVendasPaginado($inicio, $porPagina) {

        global $configurator;

        parent::conectarBD();

        $queri = parent::query("select ven_codigo as codigo, ven_data as data, cli_nome as cliente, usu_nome as usuario,
                                (select sum(iv.itv_quant*pr.pro_preco) from tbl_item_venda iv inner join tbl_produto pr
                                on pr.pro_codigo = iv.itv_pro_codigo where itv_ven_codigo = ven_codigo) as valor
                                from tbl_venda vd inner join tbl_usuario us inner join tbl_cliente cl on vd.ven_cli_codigo = cl.cli_codigo
                                and vd.ven_usu_codigo = us.usu_codigo order by ven_data desc limit $inicio, $porPagina");
        if ($queri) {
            $dados = parent::fetch_rows($queri);
            parent::desconectarBD();
            return $dados;
        } else {
            parent::desconectarBD();
            return false;
        }
    }

    public function listarVendasPaginadoAjax($ini, $codigo, $vendedor, $inicio, $porPagina) {

        global $configurator;

        parent::conectarBD();
        
        $queri = parent::query(sprintf("select ven_codigo as codigo, ven_data as data, cli_nome as cliente, usu_nome as usuario,
                                (select sum(iv.itv_quant*pr.pro_preco) from tbl_item_venda iv inner join tbl_produto pr
                                on pr.pro_codigo = iv.itv_pro_codigo where itv_ven_codigo = ven_codigo) as valor
                                from tbl_venda vd inner join tbl_usuario us inner join tbl_cliente cl on vd.ven_cli_codigo = cl.cli_codigo
                                and vd.ven_usu_codigo = us.usu_codigo where %s %s %s %s %s order by ven_data desc limit $inicio, $porPagina",
                                $ini, $this->ven_cliente, $this->ven_data, $vendedor, $codigo));

        if ($queri) {
            $dados = parent::fetch_rows($queri);
            parent::desconectarBD();
            return $dados;
        } else {
            parent::desconectarBD();
            return false;
        }
    }

    public function totalPaginasAjax($ini, $codigo) {

        global $configurator;

        parent::conectarBD();

        $queri = parent::query(sprintf("select count(*) as totRegistros from tbl_venda vd inner join tbl_usuario us inner join tbl_cliente cl
                                on vd.ven_cli_codigo = cl.cli_codigo and vd.ven_usu_codigo = us.usu_codigo where %s %s %s %s %s order by ven_data desc",
                                $ini, $this->ven_cliente, $this->ven_data, $this->ven_data, $codigo));

        if ($queri) {
            $dados = $queri->fetch_assoc();
            parent::desconectarBD();
            return $dados;
        } else {
            parent::desconectarBD();
            return false;
        }
    }

    public function totalPaginas() {

        global $configurator;

        parent::conectarBD();

        $queri = parent::query("select count(ven_codigo) as quantidade from tbl_venda");

        if ($queri) {
            $dados = $queri->fetch_assoc();
            parent::desconectarBD();
            return $dados;
        } else {
            parent::desconectarBD();
            return false;
        }
    }

}

?>
